/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hatapps.controladores;

import com.flowumi.exceptions.ClavesNoConcuerdanException;
import com.flowumi.exceptions.UsuarioNoConectadoException;
import com.flowumi.exceptions.UsuarioNoExisteException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import org.apache.log4j.Logger;
import com.hatapps.pollafutbolera.entity.Usuario;
import com.hatapps.pollafutbolera.facade.SessionFacade;
import com.hatapps.util.FacesUtil;

/**
 *
 * @author ivan
 * ManagedBean encargado de manejar la pagina de inicio de sesion
 * 
 */
@Named(value = "sessionPollaJuniorista")
@SessionScoped
public class SessionPollaJuniorista implements Serializable {

    private static final Logger LOGGER
            = Logger.getLogger(SessionPollaJuniorista.class);
    @EJB
    private SessionFacade sessionFacade;
    private Usuario usuario;//Almacena el objeto usuario de la session

    /**
     * Creates a new instance of SessionFlowumiUtil
     */
    public SessionPollaJuniorista() {
    }

    @PostConstruct
    public void init() {
        usuario = new Usuario();//Crea el usuario de la sesion
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public SessionFacade getSessionFacade() {
        return sessionFacade;
    }

    public void setSessionFacade(SessionFacade sessionFacade) {
        this.sessionFacade = sessionFacade;
    }
    
    /**
     * Metodo que verifica el usuario y mantiene el usuario en la sesion y navega hacia la pagina correspondiente al tipo usuario
     */
    public String Conectar() {
        
        try {
            LOGGER.info("Conectando");
            usuario = sessionFacade.iniciarSession(usuario);
            return "/pages/Inicio.xhtml";
        } catch (ClavesNoConcuerdanException | UsuarioNoExisteException | UsuarioNoConectadoException ex) {
            FacesUtil.addErrorMessage("Usuario o contrasena incorrecta");
        }

        return "";
    }
    /**
     * Desconecta el usuario de la sesion y envia a la pagina principal
     */
    public String Desconectar() {
        LOGGER.info("Desconectando...");
        usuario = new Usuario();
        return "/pages/InicioSession.xhtml";
    }
}
